1. Technical Field
The present invention relates in general to an architecture for user applications which reduces the amount of storage space occupied by the applications by stacking functions, and in particular to an architecture for user applications in which necessary subtasks may be integrated for the purpose of accomplishing a single task. Still more particularly, the present invention relates to executable user applications implemented as field overlays which inherit the functionality and attributes of the generic or core application.
2. Description of the Related Art
A typical general purpose digital computer contains many different user applications, each requiring user entry and each occupying storage space. Such utilization of independent applications may strain system resources, particularly in environments with very little storage capacity. Independent applications also may require users to switch between different applications, such as a word processor or a spreadsheet, to accomplish a single task.
An architecture which allows complete integration of various functions necessary to accomplish a single task would relieve the user from the necessity of switching between applications. Sharing of core functions by various applications would reduce the amount of storage space occupied by the user applications, and would also shorten application development periods since developers may simply create advanced "forms" for the core application rather than develop new applications from scratch.
Some existing architectures, such as OLE and OpenDoc, allow partial integration of functions between different applications. These architectures, however, still require separate core applications, with one application being accessed as needed from within a different application. These architectures also require a substantial amount of memory and storage space to support and are unsuitable for small systems.
Other architectures allow the creation of forms or applications having common objects. Typically an object dictionary is utilized to validate the elements in a new form or allow addition of a new object into new or existing forms, allowing creations of new forms or applications without recompiling existing forms or applications in the system. However, these applications have no core application, and are merely a common set of objects used by different applications.
The HyperText Markup Language (HTML) used by World Wide Web browsers is an architecture which may be viewed as allowing a core application (the browser) to present different "forms" or user interfaces. However HTML is a simple tag language with limited capacity both for imposing specific structure (such as visual layout) on the user interface and for allowing definition of various user input fields. HTML also does not integrate functions into a single application, but is essentially limited to showing text and graphics. Executable functions which may be called by a Web browser, such as JAVA programs or CGI (Common Gateway Interface) scripts, are separate entities from the HTML file. HTML files themselves are not executable and therefore lack the full functionality of coding. Moreover, HTML as typically used requires a communications link.
In small systems with limited storage capacity, such as a Personal Digital Assistant (PDA) or Personal Communications Assistant (PCA), it would be desirable to provide a simple architecture for robust, integrated user applications requiring less memory and space to support than OLE or OpenDoc.